{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import sklearn.datasets\n",
    "import sklearn.linear_model\n",
    "import matplotlib\n",
    "plt.style.use('ggplot')\n",
    "\n",
    "%matplotlib inline\n",
    "matplotlib.rcParams['figure.figsize'] = (5.0, 4.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11aa109e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn import datasets\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "from sklearn import linear_model\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "lr = linear_model.LinearRegression()\n",
    "boston = datasets.load_boston()\n",
    "y = boston.target\n",
    "\n",
    "# cross_val_predict returns an array of the same size as `y` where each entry\n",
    "# is a prediction obtained by cross validation:\n",
    "predicted = cross_val_predict(lr, boston.data, y, cv=10)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "ax.scatter(y, predicted, s=15, color='green')\n",
    "ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=2)\n",
    "ax.set_xlabel('Measured')\n",
    "ax.set_ylabel('Predicted')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(506, 2)\n"
     ]
    }
   ],
   "source": [
    "B = np.array([y]).T\n",
    "C = np.array([predicted]).T\n",
    "D = np.hstack((B, C))\n",
    "print(D.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a181908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "ax.axhline(0, linestyle='--', color='black', linewidth=1) # horizontal lines\n",
    "ax.axvline(0, linestyle='--',color='black', linewidth=1)\n",
    "# ax.set_xticks([0])\n",
    "# ax.set_yticks(np.arange(0.1,0.1))\n",
    "plt.scatter(D[:,0], D[:,1],s=15, color='green')\n",
    "plt.title(\"Original Data\")\n",
    "plt.grid(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[  1.46719368   7.55381741]\n",
      " [ -0.93280632   2.23666149]\n",
      " [ 12.16719368   7.86504555]\n",
      " ..., \n",
      " [  1.36719368   5.58945891]\n",
      " [ -0.53280632   4.05314779]\n",
      " [-10.63280632   0.14582635]]\n",
      "[[ 84.41955616  55.82400861]\n",
      " [ 55.82400861  61.82438195]]\n",
      "(2, 2)\n"
     ]
    }
   ],
   "source": [
    "D-=np.mean(D, axis=0)\n",
    "cov=np.dot(D.T, D)/D.shape[0]\n",
    "print(D)\n",
    "print(cov)\n",
    "print(cov.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(506, 2)\n"
     ]
    }
   ],
   "source": [
    "U,S,V=np.linalg.svd(cov)\n",
    "Xrot=np.dot(D, U)\n",
    "print(Xrot.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUcAAAEJCAYAAAAHG+V3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnX18XVWZ77/7pEmbFEqRtkkTipUSkRebNFH6pldFvTIi\ntkWyhjvainrhOlRRmzp3HOZzZWbu3A/3Y8JAFWS4iFKGURZgAMWBUSlIpbQlaVIEhL4QaJMmKYU2\nLWmb5Jx1/zjn7O69zz5vyTk5L3m+fPoh++y3Z+9z9m+v9TzPepZljEEQBEFwE8i1AYIgCPmIiKMg\nCIIPIo6CIAg+iDgKgiD4IOIoCILgg4ijIAiCDyKOQtFhWdY1lmWN5toOobARcRTGjGVZP7Msy0T+\njVqW9YZlWXdalnWWZ7ullmW1WZbVb1nWCcuy9liW9W+WZTX4HPN/WpYVtCzrBxN3JWBZ1u8sy/rZ\nRJ5TyG9EHIXx8iwwF5gP3ABcCWyMrrQs6yuRbYaBLwIXAH8JdAO3OQ9kWZYFXAv8H+DLlmWVZd16\nQYiDiKMwXoaNMX3GmP3GmEcJC95llmWVW5ZVDfwYuNsY85fGmN8ZY143xrxgjPl74POeY30SOA34\nB+AtYFWyk1uWFbAs658syxqwLOuYZVkPAGd6tnmfZVm/tCyr17KsIcuyXrQsa7Vj/c8i5/6yoyX8\n8ci6f7Ys65XIfvsiLeMzxnivhAJCxFHINMcJ/66mAAqYCvxvvw2NMe94PvofwP3GmFHg3shyMr4J\nrAO+CzQA7cD3PducBjwF/AXwQeAu4KeWZX0isv5bhFu3mnAreC7wnON6rgMuBK4BPg5sSMEuocCx\nZGy1MFYiLa6zjTGfiixfCPwKOGiMWWJZ1h3AF40xSVtalmXNAfYDjcaYFy3LqgHeAC4wxuxKsN9+\n4F5jzI2Ozx4CVhpjpiTY71FgwBhzbWT5d8B+Y8w1SexcBfwCKDfGhJJdl1C4SMtRGC8fj3RnjwN/\nAvYS9i0CWGkc5yvAi8aYFwGMMT3A7wm32nyxLGsGUMOpVl6UzZ7tKizLutmyrJcsy3rbsqxjwGeB\n9yYzyrKsKy3L+kOkS34MuB8oA6rSuDahABFxFMbLVqCecKBlmjHm08aYPZF1rwIzLMs6O9EBHIGY\nRZGo92gkFefTZCYw8wPgS4R9mZ+I2PsbwiKXyK7FwIPAHwj7PxuAr0dWS7CoyBFxFMbLcWPMbmNM\ntzFm2LPuQeAk8Pd+O1qWFQ2cfJJwtHs5YeGK/lsElBMnMGOMGQR6gGWeVcs9y/+FsC9TG2O6CLdu\n3+/ZZhgo8Xz2EeAtY8zfG2O2GmNeAxIKvVA8xPXJCMJ4Mcb0WJb1DeBfLcuaCfw/YA/wHmAF4Vbc\nfyEceHnGGLPFewzLsn4VWf9AnNO0Av9kWdafgecJR8A/5dnmVWCFZVkPA8cIB3CqgX7HNq8Dn7As\nawFwJPLvVWC2ZVlfAzYRFsvr07oJQsEiLUchqxhj7gY+BkwDfk5YcB4CPgD8TSQQs4JwpNiPBwj7\nNWvjrL+NcPT4X4BOYCnwj55tvkM4uLOJsB+zJ2KDk1bC6UNdwEFguTHm18A/E867fBG4mnBUXJgE\nSLRaEATBB2k5CoIg+CDiKAiC4IOIoyAIgg8ijoIgCD7kWyqPRIcEQcgW6YzYyjtxpLe3N9cmCAVC\nTU0NPT09uTZDKACqq6vT3ke61ULBsm7dulybIBQx+ZbnaKTlKAhCpom0HNPqVkvLUShY+vr6cm2C\nUMSIOAoFS2NjY65NEIoYEUdBEAQfRBwFQRB8EHEUBEHwQcRREATBBxFHoWCRPEchm0ieoyAIRY/k\nOQqTCslzFLKJiKNQsEieo5BNRBwFQRB8EHEUBEHwQcRREATBBxFHQRAEH0QchYJF8hyFbDLuPEel\n1DxgI1BJeJqDu7TWtyml3kN4Qvb5QDegtNbvJDmc5DkKgpBxcpXnOAo0a60vBJYAa5VSFwJ/C/xe\na10L/D6yLAgZQ/IchWwybnHUWh/QWndE/j4KvALUACuAeyOb3QusHO+5BMGJ5DkK2SSjE2wppeYD\ni4CtQKXW+kBkVR/hbrffPtcB1wForTNpjiAIwpjJmDgqpU4DHga+rbUeVErZ67TWRinl69zUWt8F\n3BVZzKuB3oIgTF4yEq1WSpUSFsb7tda/jHzcr5SaG1k/FxjIxLkEQRAmgnGLo1LKAn4CvKK1vsWx\n6jHgy5G/vww8Ot5zCYIgTBSZ6FYvB1YDLyqlOiOf/R1wM6CVUl8D3gBUnP0FYUxInqOQTaSeoyAI\nRY/UcxQmFZLnKGQTEUehYJE8RyGbiDgKgiD4IOIoCILgg4ijIAiCDyKOgiAIPog4CgWL5DkK2UTy\nHAVBKHokz1GYVEieo5BNRByFgkXyHIVsIuIoCILgg4ijIAiCDyKOgiAIPog4CoIg+CDiKBQskuco\nZBPJcxQEoeiRPEdhUiF5jkI2EXEUChbJcxSySUbnrRaEfMcYQ2tHK10Hu6ibXUdzQzOWlVZvS5gk\niDgKCSk2MWntaOX2ztsZDg2zuWczAOsb1+fYKiEfEXEUElJsYtJ1sIvh0DAAw6Fhug525dgiIV8R\nn6OQkGITk7rZdZQFygAoC5RRN7suxxYJ+Yq0HIWE1M2uY3PPZoZDw3knJmPJc2xuaAZwuQkEwQ/J\ncxQSUmw+R2FyMpY8RxFHoWDp6+ujqqoq12YIBYAkgQuTCslzFLKJiKMgCIIPIo6CIAg+iDgKgiD4\nIOIoCILgg4ijULBIPUchm0gqjyAIRY+k8giTCqnnKGQTEUehYJE8RyGbZGRstVLqHuBzwIDW+uLI\nZ+8BHgDmA92A0lq/k4nzCYIgZJtMtRx/Blzm+exvgd9rrWuB30eWBUEQCoKMiKPW+g/A256PVwD3\nRv6+F1iZiXMJQjyMMbS0t7D6idW0tLeQZ8FGocDIZsmySq31gcjffUBlFs8lCEVXmFfILRNSz1Fr\nbZRSvq9xpdR1wHWR7SbCHKFI8OY5FlthXiG3ZFMc+5VSc7XWB5RSc4EBv4201ncBd0UWpR8kpExz\ns7tQbT4X5hUKj2yK42PAl4GbI/9/NIvnEiYh3nqOUuVbyCQZGSGjlPo58HFgFtAPfB94BNDAOcAb\nhFN5vEEbLzJCRkiZmpoaenp6cm2GUABIJXBhUiHiKKSKDB8UBEHIECKOgiAIPog4CoIg+CDzVgsF\nSyHWc0x1qluZEjf3iDgKBYs3z7EQSHUUj4z2yT3SrRYKlkKs55jqKB4Z7ZN7RBwFXwqhiMNE1XPM\n5L2om11HWaAMIOEonlS3E7KHdKsFXzLRrSsWv5nfvWhuaB7TtaU6ikdG++QeEUfBl0x06wrRb+Yn\n6H73YqzXZllWRrcTsoeIo+BLJoo4FKLfzE/0/O7FRFxbsbS8CxURR8GXTHTr6mbV8cy+ZwgSpIQS\n6mblv9/MT/Q2fmajvS56L1o7WrNeAagQW97FhIij4EsmunUm8h9AkCDP9T5nBzMy0SLKRp6jXyvR\n715MhE+wEFvexYSIoxCX8SYs73xrJyFC9nbb+rfR2tEKYLeInt3/LFt6t1BRWpG2UGYjzzFV0RvP\nyyPV+yr1KXOLiKNg431ojTHc0XVHWgnLTrEbGhlyHx9D50Anrw++breIRswIW/u2YjCuc6QiIN56\njulen98xM9JiTnKeVLvLErHOLSKOgo33oa0+rdrVrWvb3eb7wDu7f06xKwuUUTO9ht53e+3l46PH\neXPwTdd5o11vZ9cxFQFpbGxMq2RZqqI03kBIsvP4dZfjnVN8jLlDxLGIGO9D7X1oIZyAPBwapoQS\n3hx8k+7B7pgH3tn9s7BcYnf+mecz7/R57Dq8i9qZtVRMqXB1tUusEowxhAi5uo6J/G3R6wRoaW9h\n3aJ13LLjlqTXnaoPb7yBEO95Nr4cDuhE7fLrLkvwJf8QcSwixvuAOR/aUquUqvJTXVZjDG8cfQOI\nFRZn929oZIiOgQ77wR8aPbV8dOAoDXMabMEFCJpwJHv+jPmsOm+VfaxE/rbodULYd7mld4t9jkTX\nnaoPz09EQ6EQTY832SL/4OUPEgj4DzBzngfg0IlDtr3rG9f7dpfXPLlGgi95hohjETHe6GY8kSuh\nhNPKTiNAIKaFB24/nbf12jnQ6bKpfEo5a+vXsvHljRw6cQgIR7IBTMhw8caLORE8wcKzFnL9wuvZ\neWhnjL/Ne527Du9KqZuaqg+vbnYdz+5/lhEzgoXF0MgQV/36Krb2bwXgUN8hrvr1VSyrWUbnQCfH\nR49TMaWCujnu8zivcTg0TOdAJy3tLfb5N35mo93CleBL/lFy00035doGJzcdPXo01zYULHuP7KWj\nv4OgCVIWKOOKBVewrHpZ3O2jAvLjnT9m75G9LJu7jGVzl7F3cC+b9m3i2Mix8HYYTgZPEiDAe2e8\nlzUXronbdbUsi2XVy1i1YBVbDmxhy4EtDJ4cxGAIEMBgOHziMCPBEY4MH7H3O3zyMM/3Pc+J4AlG\nzSg97/bw5uCbzKqYRWVFJVsObLHtrKyopGOgg+CmIGWXlnHxWRczMDTguu4tB7Zwe+ft7D6ym47+\nDkbNKMurl7OsehlXnncly6qXxXU5LJ27lM29m+k51oPBMDA0QP9QP0ETtLd56/hbbOvbxp4je9h/\nbD+vD74ec553R991fR+zy2fz2J7HXDZFv5+lc5cyakapmFLBFQuukITvDHP66acD/EM6+0jLsYhI\nN7rp1w2HU2k2XoIEOfeMc1PqqjuPXUIJZ5SdwbHhY3QPdtM92J3S9fQO9dI71MvT+57GwiJIkM09\nm1lbt5a19Wtp+3wbq+pX+focx9NNtSyLitIKl+90amBqzHbee5TI3VA3u46ugfgt+1SCL/F8yjKS\nJjuIOE5i4nXDnQ99eUk5J4MnfbvTqR47SJDh4LDdfU4XZwBnODRM11td3HfZfS4x8QqLXzc1HRHx\n7j93+ly6j3bb6+dOn0vvu72ue5XI3QDh4NHm3rF3neP5lCWYkx1EHIsEY0zYLxZJo3l2/7NA4ock\nnp8r+lmAAJXTK6mqqKJ8Sjn1c+pTzrXzBiWOB4+P6/pKKCFI0GWnM8/RGzDRn9VA7JC/ZMnntoAO\ndNEwu4EDQwewLIvK8kpbDMsCZaw6bxUGwyO7H+HwycPMnDqTleetZN2idS6/olOAx5u3GO9lJiNp\nsoOIY5HQ2tFqCyOE8w3bdrclbB0leljbdrexb3Af3YPd9B7rZW392rRaI9Fjte1uS7kbHY+yQBnV\np1UDsHLBSvvYzjzHpsebeL7veSAcMPngv32Qr178VVfQwxkcipd87nUHGMJpRt2D3dRMr+H8M8+3\nAy8t7S28efRNQoQYHB4E4JYdt8RtxSUKXKXSFY73MpNgTnYQcSwSug522cIY5Y3BN2htb2X9h2JH\nnCTKDVzfuJ6ug122qI2lNRIVAudxxspwaJjuwW5KKMHC8hWRXYd3uZaPDB/hRzt+BJwSp+Oj7tar\nN/ncGEPb7jaXO8BJ77u9qPcrANY8uYb2/na7yx8ixCN7HuHcM851t+IGunxbkmOpERnvZSYjabKD\niGOR4O3GQvjhb9vTxvoPuVtEz+x7hnv+dA/Hho/ZQQ5wD9vbe2RvTFc2ldaOd5u6WbF2ORPFnUTP\nF48gQe7ceSdYpwQher5gKHa/ETPiEvWKKRWu9VE7ygJl1M2q46pfX+UScq+dBsMPO3/IqBmNa6O3\nFTc0OuTbkhxLjch4QRsZSZMdRByLhKhY3Nl1p69/zxsgcabRxBu2FyDA/BnzqaqoorO/k8U/X2wP\nBYzn+Pc+4NfXXc/a+rV0DXTx6juvcnz0OLUza+kf6ncFOFLlePB4OKE6olnLH1jOm0ff9BVbgIWz\nFtp/182pswMipVYpjZWNts/RGMPWvq2ufd97+nuprKi08xuBuMJYQgmrFpxKYu/s7+S1w6/xQv8L\n9j7O+5yrGpFC6og4FgnR1oMxhg07NhAiRIAAKxesBPxbllGcLUNntzLaZWzvb2fEjLj2iffweh/w\nnW/t5L7L7uMHL/yAp/c/TYgQW/u3ckbZGTH7BglSM72Gt0+87RJ4bwtuODTML3f/EsAetRP3vpC8\nW9rS3sKdO+90ncPCYlVtWOy+8KsvuATSyZKqJTFBnfWN6/nCr75Az7vucd9Of6CfLRNRI1JIHRHH\nImN943osy4rrl2rb3cabg2/awldeUm77IFs7Wtk3uM8+ViAy/5pXGCEsHn4Pb7zgwCN7HnGl5Dhb\nrk5KA6Vcd/F13PvKvfZImWXVy/jxzh9zMnTS3u6No2/Ax5Lfj663EucStrS3cNuO22JanourFtti\n13+83/fYZ5SdwdK5S2lujHUveH2gpVYpa+vX2t9DshqRC2ctBAOrn1gtuYs5wsqzWeVMb29vrm0o\nCKIz4j2y5xGAcJfO5yGNt99PX/qpLVBlgTLW1q2lbY87sjx/xnwqyyt9W01Lqpbw0OceSupzjD7U\nyx9YPubAzJKqJbz2zmu8ffLttPazsPh2w7cTBjpWP7Gap/Y95dpvamAqy6uXUzenju/Uf4f598x3\nCTvgGkrpjORHr/+eP93jegEsqVrCw1c8nHKUuqW9xRU1nzdjnmvsuSR9p0d1dTVAWjdJWo4FSmtH\nq919BtiwYwNYyWshWlY42htNPYFwN3VD5wbX8LgSSqiqqKK9vz3m3DXTa3yFMXr89Y3r7bzDupfr\nqJ1Zy8pzV/LDzh+OKRE8mqITwyAwI/5+55x2DsYYPqI/wr7BfTHBJwi3dL3ieDJ0kqf2P8Wm/Zu4\n+8W7Y4TRGTjyuhecPlc41TJ/8PIHY9YnStj2+oi7B7vt4hWAJH1PACKOeUgicYuu2/jyRtdDGyRo\nl8bCwO1dpx4eY4yrq9050BnTjXQKI8BpZadRPqXct0v9/jPf7xJGP3u9eYfGGG5ouMEu1PDK26/E\n7VqnzC3ATfFXj5pRbu+83XUN0fQaZ7J3dUU1vUOxPRaD4ehI7Fj/IEHbD+qdG8cpagBLq5dy32X3\n+a5PFHTx8xH7jWKSwE32EHHMQxK1LrwtEyeHThzito7bmFoy1fXwPLLnEXqP9drHa5jTwBSmMEr8\nlJQzp51J/Zx6/tj7x5ghcvVz6oFTouj0Y0bt9frcdh/ZzS8//0t7+Uv/8SU27d80ltuTMt6ASJSn\n9j/FRRsvslOZor7VdIi+XJzz5EDyhOxUE7b9fMQBAuw9speqiipKrVJGzIgEbrKIiGMekqh14W2Z\nTA1MJWiCdrpIiJAr0lsWKLOPE/1/xZQKPlT1objdVWdaijGxQ+ScUV5n1z56/M6BTqaVTHMds3Zm\nrWvZKbzJ8hvj2TjWsdrgDgh5u83JcEbPQ4ToOhhJ9B7o4s9v/5lgKEiJVUL97HrWLXJPApbuHDVR\nf6l3xJIzDUmSvrODiGMekqh1sXDWQp7e97TdkqifXc8L/S/4HuesqWex5qI1rm62hcXQ6FBMQnR5\nSTkLZy2korSC+jnhh7q1vZWfvfQzDg8fBmBodMj2WUJsBBqwp0I4ePyg/VnN9Brb5xbFzgcc6OT4\nyHFeeSe9bnb0vFOsKQmTslMhVaGdP2M+555xLu8Ov8v2/u32dzA0MhTbmjewvX87t+y4JaVE7nj4\njTQaDg1TUVrh6q4LmSf9/oSQdZobmllbv5ZL513qSv+AcKslmrtnEU4zifdg155ZG259NDbTMKfB\nbvG097czNDpktyrLAmV8ve7rPHzFw9TPqafrYBdNjzexYccGWxghuX+rxCrh+rrrqZhS4RKK899z\nfkzV7OhDXz+7nu3929P2P0ZbbmefdnZa+3kJEODDlR/mkjmX2Pe11CplSdUS5s+Yb3e5o8Um7rvs\nvnAtSM934OfmMJiM+QMXzlpo2xIg4Epuj2YgrH5iNS3tLeRZBkrBkvWWo1LqMuA2oAS4W2t9c7bP\nWeh4WxfRH3/XwS72Htlri2H0/9FpB7zJ0uVTyu3jOesTjpgRuyJ3vKo1fkP8vLmNqxas4tYdt57y\nv0UCP86RKMl8Ym172sbUPS4LlNFwdQOLFyzmts7b0t4/SogQ2/u38836b7L87OXhHMOzFrLlwBaO\nnjzK3OlzqZ1Zy6LKRae6xG91xf0OnMTLBR0L3peiM7ldSpZlh6yKo1KqBLgd+DSwH9iulHpMa/1y\nJs9TTMU+/a7FWynGmWO3csFKOxI9NDJkj2ZxBk4gtqteP6felfaz5sk17D2y137A/YbjRROjozQ3\nNrtyI6P+t42fCUfNUymE8M6Jd+KuCxBg5tSZvDvyrisBHGBqyVTKP1nO1gP+I1fSIUiQWztv5ZLK\nS3jo8odY+sDSU8GckzDv9HkusfHeS/s7iPgc3z7xNtOmTOOaC69JWMLMiTGG1vZW2va0AeHqQ9GE\nfogVZGdyuww7zA7ZbjleAuzWWu8FUEr9AlgBZFQci+nN6Xct3py3qO8rXpqPnyjFCwR4x1JH/W+l\nVimNcxrpO94HxD6sEG6Rrjpvlb1/tJUYz6/mZ9/MqTPjdqk/Wv1R7v/s/b7D946OHGXTK5sS5jmm\ny7b+bVx030Ux6TtdB7tcI1X87mW8l7EzmTvZ3N8bdmywBXDDjg2u+5jIDy0ly7KEMSZr/5qamq5q\namq627G8uqmp6Ueeba5ramp6oamp6QUTdpbE/Gtvbzc9PT1m3bp1vuuXtyw33IThY7HrUtk/39df\n+9NrTdk/lsW9vhdeeMF857HvmPmfnz+m47OOcd2/a396rbn0J5eaJVcvSbh/vPXWOivh+ac0T0m4\nPpn9mVof+HggK/f32p9ea866+ayE93///v1x7994v//JsD5CWvqV1eGDSqmrgMu01v89srwaWKy1\n/kacXcY0fND5dvYO5yo0/K4lWZ2/8Vx/S3sLP9rxI3umvcVVi+OOfhkv3qF6l867lI2f2WhfW3t/\nu6sVOTUwlZAJ+SaiA+EE8JsybmZCLp13aVpRYud343d/neudBAjwrYZvFezvON/Ix+GDPcA8x/LZ\nkc8ySq6LfWbS5xmvy5boIRmPz6m5oZnnep5ja3+4Kvb2vu12gdxM49f9c17b8geWu8TR62eMVwcy\n27jqPnq6rMm+++aGZrb0brGrjm/r28ZH9EfscdLevNXyknIqp1e6Kp6nQzH533NNtsVxO1CrlHof\nYVG8GvirTJ8kW8U+U/2hpeLzTPVYY7mW8ficvFVnggTtArnp2p6MZC+xlQtWxiSVR4nWX4zOpT2R\nVE+v5v1nvt93Dh1nIvxT+56ibXebLXzRnFBnpkB0yoXbO29nS+8W+ob67ABbdM4e5/7pUkz+91yT\nVXHUWo8qpb4BPEk4lecerfVL2TxnJhlLkYB4Lbds/mibG5rBYEc6oz6T6HnHK2qZsj2Z8DvLrW3v\n2+4KjMypmMNDn3vINYkYhBOzVy1YxXO9z8WtuRgVn7HS924fpSWlruh/FG8ifPdgNxs6NoDBfsHE\nGycdHaEUIOCaujZaYGIs91gi15kj63mOWuvfAL/J9nmyQcpFAmbV8cy+ZwgSjClEkO6xkhG3FWdh\nj5++o+sOWwRdomYAK7bL7myxOQvkTpjtEZzi+cXffJGne56219XOrI1phfExwvNoR+bIWfzzxb7j\nqctKyjgRPJGyndNKpmFh2cMwvVVxkomWdzqH6DBMZ5k4JyFCTAlMiVvpJx0kcp05ZPhgAlL9oTmL\nD3gLEaR7rGTEtOIigrfx5Y2+Aub8rG1Pm6sABYQf9HgFcrNuO/GFZlHlIv7Y+0c7UHQieAJjjNuW\nT4bnfonmETbVNvHAqw9w4PgB17HSCToGCPDXdX8NEBMoGQ4Ns6N/hytvMV4pNns6B075HRONAooK\nssFQapWO+R7n2v9eTBS1OI7XV5bqD23nWztds9DtfGvnmI+VDG8rzil4UfzmoPYrQBEV0GTd3VRs\nj5djGf1s4ayFPLL7Ed/z+xXuXdewzhXI6BjooLWj1WXLgsACDIY7Ou+wBXfR7EUucQwQYFrJtJjg\nTjxChHiu57nwWHADd3Td4dp31+FdPHfgOYZDw2zat4nFlYv55qJv0rarjTeOuadsGA4N07a7Len0\ntDXTazh4/CAGg4VFY2XjmH8fft+lBGnGRlGL43h9ZakGRyayK+M9F+ASxrOmncWaC9e4Hq7oQ2GM\n4Y6uO+LaGe8hSuU++N1rONX6enrf064WdYCAff54hXudXeiomDptqamp4dKfXOoS3I6BDpddpYFS\nBkcGSYet/VtRv1EsrV4aE/w5MXrCNYpoa/9WltYsZVXtqphgUgklvDH4RsII+xllZ3D+mefb7gCD\noaK0IqPiJUGasVHU4pjMVzbWN6rfHNDR83lbVolqHib6gcazzduK8wremgvXuI7rHaMN2C00DPZ4\naBjfQxTvXkc/8wZEzplxjutavIV7o9fnfBEsnLXQ1aWF2GCHNycy1Rajl13v7KJvqM8lbBYWtWfW\n8nbf2y43SudAJ68Pvu66hrOmncXpZacnnRrizGlnpjUWPUq834ff5xKkGRtFLY7OBydaKLSlvSXh\nxOqpiIF3vy29W2JmoPPbNkoqP9B4tvkVpUjkL3QSbQVGu+G3d91uT60A4wu8xMzXPDIUk6ZiYdnz\nYK86b5V9n+pm19ll2CDc4nJeiy2GJnZ6gOg2G1/eyKETh/yv25Gn2DCngYrSCoZGhhKmBZ0MneTw\n4GHXZ9XTq5kWmMZppafZkfQpTOH46HHeHHzT3q6EEtZcuAaAWztuTdhyrCyvZN2isAth1+Fd1M6s\njakB6Ue834ff5xKkGRtFLY7OasrRQqHOiONYxcC7X9Qv5iew3iRfIKUfaKq2pZsXmei443mInELm\nLIBRQgnzZ8wPF2fAoust/3Hfxhj3ZGE+ye+rn1jtsh1w+SE3dGyICYw4BdGvhbXxpY0cOhkrqiOj\nI65jzSybycHjB2Oi4eWl5UwLTHO1GufNmGfb5PSb+qUUVZRWcMuOW2yhPjpwNKYGpB/xvke/z9Mp\nBCKcoqjFMV6h0OgPaaxi4NzPOWrDT8Sc2/rNIpfKOdIVqkTugkTHHU/QyClkq59YbXdvgwQ594xz\n+e6HvpuLrperAAARxElEQVRw3+9+6LsJt/HaHsUZEfYGPkqtUhrmNPDg5Q/GrScZPYb3BTatdBqj\nw6N2etbMqTNdtS2jHB05yq4ju+ySZdFWMYSFu2JKBYurFlM+pZzXB1932Wdh2fUz031Jx/sek41C\nElKn5Kabbsq1DU5uOno0dkKj8bL3yF46+jsImnCX7ooFV7CsehlL5y5l1IxSMaWCKxZckbLP0blf\nZUUl/e/22yXEosf223bFeSu4+1N3s7x6edLzjNU2ONXl2n1kNx39HYyaUdumRMe1LItl1cu48rwr\nwwVdxxgUiHe/UyEq7D/e+WP2HtnL0rlLbTuitu96ZxfHR4+DgeD8IF0DXYyERvjAez5Ax0CHPVlY\niBADQwMECcY9/9K5SxkNjfLK269wMhj2T5ZQwsKzFtLzbo8dQS6fUs6xkWO+xxgNjYaL/Jaeuqet\n7eEg097BvRw4doAVC1ZwwVkX2PclOs761o/dyt7B9O9XvO9xPL+bYub0008H+Id09inqlmMUV4to\nVjiI4SxBBdg1DVMJzDjfxInKhI2H8bztE7VEJqIVMRYfWpREfuBoQGpL7xYO9R2CT4T3OR48zoYd\nG7hh0Q2srV/r8j8Oh4btWRn9vtdoAv3QyFB4GYsPV32Y8inlrvQs5+yEpYFSRkKnAj/Hg8fBwlWQ\nwlnENzokc7M6VYIuUZAtld9QvO9RWomZY1KIo/MH09Le4sqLizLWKG2yH2Mu0ihy7YD3+tCaHm+K\nG7AC9wvGWXDXr4vZ2tF6ai5tx7zV0QKwUYFydpUPnTiUcHRL18Eu2w0QTaWpm11nTwDmLXixfO5y\ndhzc4Urq9trpLeL7zol3MipokruYfSaFODpJlnKS6VSHXKRR5HqURDoBK3C/QLyVzr3C7hQy57zV\n0Qg3+EewownZfiJSN7uOZ/c/a4/GGRoZslu7nQOdvPbOa/S+22t3sbuPdnPBey5wVV332ukt4jtz\n6swx3Mn4SO5i9pl0E2zVza5jiuOd8MeeP3Ls5DHXZFOZbGnVza5L69iZmCwp2hK577L7Yqp3TwTO\na04WsILYSufnzDjHd3Ix77EhnEQ9f8Z8blh0g71t9PrXXLjGNSf1vsF9tHa0xpy/uaGZxspG29Zt\nfdv46IMftc8XHb0SpXuwm21925heOp35M+Zzfd31MXauOm+Va0KslQtWZnQSrJiRUrvbZIKtDDPp\nWo7NDc3oV7WdknEydJJtA9tYUrUkK/MAp9uKm4gWQba7ZPHSeuK9HLxugFXnrYp7zc5jP8VTvLTm\npbi2eyPY0eRyL4nKilWfVu2KZDu3OTx8OGa62ije8ep+OZqJ/NbJvg9vxkT3YDfdg93Siswgk04c\nLcvyrdCSrXmAM5mHmCmikdQgQZ7Z94yrvFYmSDdglc4LxDV8kJqkIlJVUWUP4UtU0CFeWTE4NbNg\nCSUYjCtXMd53FA20pOJLHcsL0ZnD60wPyuRIsMnOpBNHCJe/OtTnTvzNl1EDExFM8YukZqPyN6T2\ncshWhLW1o5WOgY6UCjp4BwxER/KsPHclz/c9H468n1HL4rmLeXTvo65t4n1H8SYv8+4zlheiXw4v\n+E8HK/7JsTEpxfHByx+k6ddNdL3VRWmglA+c+QG6BrpcQwtzRa6DKbkmnVbOunWJU4ScomMw7Dq8\nyx5R45fSs75xfcx8PRhORd6Hj7K0Zimb1eaU0re6Bk6dP0SI+afP59yZ58bs4/dCTPU+eINJ3ulz\nvfdBxlanzqQUx0AgwMOffxjwTJ3Zm/u36kTkqSUrbptL0mnlNDenPsoIkqf0QOz99w5Z9FYGSsTQ\n6JBruWp6lT2hmDOn1u+FmOp9SGWa2FyndhUqk1IcnUzGt2qy4ra5JOb7iLTo/R7+vr4+qqqq4h4r\nXkrPeApqpCMs5VPKY5bjiZ5X+BL9LtP1IU723shYmfTiOBnfqvk8iiKmus/oUNwWVGNjIz098Sez\n9Bs/PZ6CGukKS/2cejuRvCxQlnActVfwFs5aGPd36RTYTfs2saV3S8LpdPP5+85nJr04pvrjl4jf\nxOD9PjoHOsfdss9UQY1MnLe1o9VX9LwtyusXXk/DnAbfIZheX+rWvq20drSKAGaYSS+Oqf74JeLn\nT6ZfGt7vo6W9xdX6GkvLPlctJ7/zxhNqb4vykb2P2HU3vWXM6mbXsWnfJlfB3bG6g+SlH59JL46p\nMhl9k6mQ7ZdGsfnL4gl1oukvvL+3aPGN6LDM8UzIJS/9+Ig4pkgqvsnJ+BbO9ktjsvjLfKued/n7\nSS3L4qHPPTSualB2sd84s1YKIo4pk0oLZjK+hXMZ0EqW55gpJuKl5zf9hXeO8UTbp4vf9B2TJSCZ\nKiKOcQiFQjQ93mQ7xB+8/MExl64vZnLZ7U2W55gpcvHSy3aL2Tt9h9+slZMdEcc4ND3exPN9zwNw\nqO8QTY838fAVDyfcR9KCJpZkeY6Zohhfet7fqnfWSkHEMS67Du9KuOxHsQUP8p1keY6ZIlcvvWx2\n5+W3mhwRxzh4i1MEQ8GkY68nS/BgspErIclmd15+q8kRcYzDg5c/SNPjTXQe7ORk8CSHhw8nHZcr\nFCe5EpJi7M4XEpOuEniqBAIBHr7iYZZVL0tayVoQskG6VeSFzCItxyRMxiCLkB+IXzC3iDgmQX6g\n+ctE5TlmknSCLOIXzC1Wnk3GY3p7e5NvNYmZjKNwigln/dCyQBlr69eKAE4A1dXVAGk9KNJyLDAm\n4yiceExUnmMmkSBL4TAucVRKNRGeOfgC4BKt9QuOdd8DvgYEgRu01k+O51xCGHm4TjFReY6ZRHzY\nhcN4W45/Aq4E/tX5oVLqQuBq4CKgGvidUur9WuvgOM836ZGHq7ARH3bhMC5x1Fq/AqCU8q5aAfxC\na30SeF0ptRu4BNgynvMJ8nAVOhJkKRyy5XOsAZ53LO+PfCaME3m4BGFiSCqOSqnfAX5e7xu11o+O\n1wCl1HXAdQBa6/EeThAyQrKsgHzLGsg3e4qBpOKotf7UGI7bA8xzLJ8d+czv+HcBd0UW8yqvSMhv\nspnnmCwrIF+yBqKi2La7jX2D+wgSnPRZDJkiW93qx4B/V0rdQjggUwtsy9K5hElKNus5JssKyJes\nAb+itZM9iyFTjGtstVJqlVJqP7AUeFwp9SSA1volQAMvA08AayVSLWSavr6+rB072bjmfBn37C1a\nm2t7igkZISMULDU1NVnLcywUn6NzxE2AAOfMOIdV563KiT35ck/8GMsIGRFHoWDJpjgWCvkkSPk8\nNFKGDwrCJCOfUrvyxQ+bKaSeYwYxxtDS3sLqJ1bT0t5CnrXKBSGr5IsfNlNIyzGD5Et6h1DY5FNX\nOR2KbfSWiGMGKbZuRb5TiPUcU6FQX7L51MXPBNKtziDF1q3IdyZq3uqJRl6y+YG0HDNIsXUr8p1C\nrOeYClJ5KT+QVB6hYCnWVJ5C9TnmM5LKIwhFQLH57goV8TkKgiD4IOIoCILgg4ijIAiCD+JznCDE\nyZ55ijXPUcgPJFo9QeTzoHxBKHbGEq2WbvUEIYm9mSeb9RwFQcRxgpDRM5mnsbEx1yYIRYz4HCcI\nGT0jCIWFiOMEIYm9glBYSLdaEATBBxFHQRAEH0QchYJF8hyFbCJ5joIgFD2S5yhMKiTPUcgmIo5C\nwSJ5jkI2EXEUBEHwQcRREATBBxFHQRAEH0QcBUEQfBBxFAoWyXMUsonkOQqCUPRInmMRYYyhpb2F\n1U+spqW9hTx7ieUFhZ7nKN9xfiNVefKU1o5Wu3L45p7NAFLVx0NjY2NBz1st33F+Iy3HPEUqhxc/\n8h3nNyKOeYpUDi9+5DvOb6RbnadI5fDiR77j/GZc0Wql1A+AK4BhYA/wFa314ci67wFfA4LADVrr\nJ1M4pESrhZSpqakpaJ+jMHHkIlr9W+BirfVC4DXgewBKqQuBq4GLgMuAO5RSJeM816RGIpuxSJ6j\nkE3G1a3WWv+nY/F54KrI3yuAX2itTwKvK6V2A5cAW8ZzvsmMRDZjaW6WbqiQPTLpc/wq8EDk7xrC\nYhllf+SzGJRS1wHXAWitM2hOcSGRzVj6+vqoqqrKtRkYY2jtaHX5Di0rrR6ckIckFUel1O8Av1/g\njVrrRyPb3AiMAvena4DW+i7grsii9BXjUDe7js09mxkODUtkM0K+5DlKq744SSqOWutPJVqvlLoG\n+BzwSa11VNx6gHmOzc6OfCaMEYls5i/Sqi9OxtWtVkpdBvwN8DGt9ZBj1WPAvyulbgGqgVpg23jO\nNdmRea/zF2nVFyfj9Tn+CJgK/FYpBfC81vrrWuuXlFIaeJlwd3ut1jo4znMJQl4irfriRKryCAWL\n5DkKqSJVeYRJheQ5CtlEWo6CIBQ90nIUJhWFXs9RyG9EHIWCReatFrKJiKMgCIIPIo6CIAg+iDgK\ngiD4IOIoCILgg4ijULBInqOQTSTPURCEokfyHIVJheQ5CtlExFEoWCTPUcgmIo6CIAg+iDgKgiD4\nIPNWTwJkjhNBSB8Rx0mAzHEiCOmTd6k8uTZAEISipXBTeZRS7YQvIOf/xBaxRWwpDjsctqRFXomj\nIAhCviDiKAiC4EO+ieNduTbAgdjij9jij9gSS77YAWOwJd8CMoIgCHlBvrUcBUEQ8gIRR0EQBB/y\nKglcKdUMtACztdZvRT77HvA1IAjcoLV+Mss2/BOwAggBA8A1WuveHNnyA+AKYBjYA3xFa314om1R\nSjUBNwEXAJdorV9wrJvQexI552XAbUAJcLfW+uZsn9Nx7nuAzwEDWuuLI5+9B3gAmA90A0pr/c4E\n2DIP2AhUEs4RvktrfVsu7FFKTQP+AEwlrCsPaa2/n8N7UwK8APRorT83FjvypuUY+aL/K/Cm47ML\ngauBi4DLgDsiF51NfqC1Xqi1rgd+DfyvHNryW+BirfVC4DXgezmy5U/AlYR//Da5uCeR498O/AVw\nIfDfInZMFD8jfK1O/hb4vda6Fvh9ZHkiGAWatdYXAkuAtZF7kQt7TgKXaq3rgHrgMqXUkhzZAvAt\n4BXHctp25I04Av8C/A3uUTIrgF9orU9qrV8HdgOXZNMIrfWgY3G6w55c2PKfWuvRyOLzwNm5sEVr\n/YrW+lWfVRN+TyLH36213qu1HgZ+EbFjQtBa/wF42/PxCuDeyN/3AisnyJYDWuuOyN9HCYtBTS7s\n0VobrfWxyGJp5J/JhS1KqbOBy4G7HR+nbUdeiKNSagXh5m+XZ1UNsM+xvD/yWbbt+Wel1D7gi0Ra\njrmyxcFXgf/IE1ui5MKOfLl2J5Va6wORv/sId3MnFKXUfGARsDVX9iilSpRSnYTdUb/VWufKllsJ\nN7RCjs/StmPCfI5Kqd8BVT6rbgT+jnCXOue2aK0f1VrfCNwY8ad9A/h+rmyJbHMj4S7U/bm0Q0iO\n1toopSY0P04pdRrwMPBtrfWgUion9mitg0C9Umom0KaUutizPuu2KKWi/uB2pdTH49iZkh0TJo5a\n60/5fa6U+iDwPqAr8qWeDXQopS4BeoB5js3PjnyWFVt8uB/4DWFxzIktSqlrCAcAPqm1jn6hGbcl\njXviJCv3JA/PmYx+pdRcrfUBpdRcwi2nCUEpVUpYGO/XWv8y1/YAaK0PK6U2EfbNTrQty4HPK6U+\nC0wDZiil/m0sduQ8Wq21fhGYE11WSnUDH9Jav6WUegz4d6XULUA1UAtsy6Y9SqlarfWuyOIK4M+R\nv3Nhy2WEuwcf01oPOVZNuC1xyIUd24FapdT7CIvi1cBfZfmcyXgM+DJwc+T/E9LSVkpZwE+AV7TW\nt+TSHqXUbGAkIozlwKeB/zvRtmitv8epwOXHgfVa6y9FMj/SsiMvfI7x0Fq/BGjgZeAJYG2k6Z5N\nblZK/UkptZNwV/9bObTlR8DpwG+VUp1KqTtzYYtSapVSaj+wFHhcKfVkLuyInHOUsKvjScIBCB2x\nY0JQSv0c2AKcr5Tar5T6GuEH7tNKqV3ApyLLE8FyYDVwaeT30RlpMeXCnrnApshzs52wz/HXObLF\nj7TtkOGDgiAIPuR1y1EQBCFXiDgKgiD4IOIoCILgg4ijIAiCDyKOgiAIPog4CoIg+CDiKAiC4MP/\nB6Hf4kAtgu93AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a589eb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "ax.axhline(0, linestyle='--', color='black', linewidth=1) # horizontal lines\n",
    "ax.axvline(0, linestyle='--',color='black', linewidth=1)\n",
    "ax.set_xlim([-40,40])\n",
    "ax.set_ylim([-25, 25])\n",
    "# ax.set_xticks([0])\n",
    "# ax.set_yticks(np.arange(0.1,0.1))\n",
    "plt.scatter(Xrot[:,0], Xrot[:,1], s=15, color='green')\n",
    "plt.title(\"PCA data\")\n",
    "plt.grid(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-0.51889323  1.22322865]\n",
      " [-0.06084846  0.57747968]\n",
      " [-1.26237674 -0.4016782 ]\n",
      " ..., \n",
      " [-0.40306402  0.86079837]\n",
      " [-0.18883018  0.86420369]\n",
      " [ 0.71355183  1.70231819]]\n"
     ]
    }
   ],
   "source": [
    "Xwhite=Xrot/np.sqrt(S+1e-5)\n",
    "print(Xwhite)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nRxGRFP8PYuIEw8JcPhAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11a9ff550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "ax.axhline(0, linestyle='--', color='black', linewidth=1) # horizontal lines\n",
    "ax.axvline(0, linestyle='--',color='black', linewidth=1)\n",
    "ax.set_xlim([-40,40])\n",
    "ax.set_ylim([-25, 25])\n",
    "# ax.set_xticks([0])\n",
    "# ax.set_yticks(np.arange(0.1,0.1))\n",
    "plt.scatter(Xwhite[:,0], Xwhite[:,1], s=10, color='green')\n",
    "plt.title(\"Whitened data\")\n",
    "plt.grid(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
